package com.hb.config;

import org.springframework.context.annotation.Condition;
import org.springframework.context.annotation.ConditionContext;
import org.springframework.core.env.Environment;
import org.springframework.core.type.AnnotatedTypeMetadata;

public class MagicExistsCondition implements Condition {
    @Override
    // ConditionContext 是一个接口，能帮我们获得 Bean 定义、Bean 工厂、环境、资源、类的信息。
    // AnnotatedTypeMetadata 能够让我们检查带有 @Bean 注解的方法上还有什么其他的注解。AnnotatedTypeMetadata 也是一个接口。
    public boolean matches(ConditionContext conditionContext, AnnotatedTypeMetadata annotatedTypeMetadata) {
        Environment env = conditionContext.getEnvironment();
        // 检查 magic 环境变量属性
        return env.containsProperty("magic");
    }
}
